//package com.example.beautyuser.security;
//
//import io.jsonwebtoken.JwtException;
//import io.jsonwebtoken.Jwts;
//import io.jsonwebtoken.security.Keys;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.security.core.userdetails.UserDetails;
//import org.springframework.stereotype.Component;
//
//import java.security.Key;
//import java.util.Date;
//
//@Component
//public class JwtTokenProvider {
//
//    private final Key key;
//    private final long validityInMilliseconds;
//
//    public JwtTokenProvider(
//            @Value("${jwt.secret:your-secret-key}") String secret,
//            @Value("${jwt.validity:86400000}") long validityInMilliseconds) {
//        this.key = Keys.hmacShaKeyFor(secret.getBytes());
//        this.validityInMilliseconds = validityInMilliseconds;
//    }
//
//    public String createToken(UserDetails userDetails) {
//        Date now = new Date();
//        Date validity = new Date(now.getTime() + validityInMilliseconds);
//
//        return Jwts.builder()
//                .setSubject(userDetails.getUsername())
//                .setIssuedAt(now)
//                .setExpiration(validity)
//                .signWith(key)
//                .compact();
//    }
//
//    public String getUsername(String token) {
//        return Jwts.parserBuilder()
//                .setSigningKey(key)
//                .build()
//                .parseClaimsJws(token)
//                .getBody()
//                .getSubject();
//    }
//
//    public boolean validateToken(String token) {
//        try {
//            Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token);
//            return true;
//        } catch (JwtException | IllegalArgumentException e) {
//            return false;
//        }
//    }
//}